﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace ChoWorkflowServer.ModelWCF.Host
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in both code and config file together.
    public class Service1 : IService1
    {
        //[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "GetData/{value}")]
        //public string GetData(string value)
        //{
        //    return string.Format("You entered: {0}", value);
        //}

        //public CompositeType GetDataUsingDataContract(CompositeType composite)
        //{
        //    if (composite == null)
        //    {
        //        throw new ArgumentNullException("composite");
        //    }
        //    if (composite.BoolValue)
        //    {
        //        composite.StringValue += "Suffix";
        //    }
        //    return composite;
        //}


        public Version GetVersion()
        {
            throw new NotImplementedException();
        }


        public int GetTaskId(string taskName)
        {
            throw new NotImplementedException();
        }

        //public bool IsTaskExists(string taskName, out bool isDeleted)
        //{
        //    throw new NotImplementedException();
        //}

        public int AddOrUpdateTask(string taskName, string workflowName, string taskDesc, int taskGroupId, string cmdParameters, 
            int? maxNoOfRetry, int? sleepBetweenRetry, int? timeout, string hostName, 
            ChoTaskSchedule[] taskScheduleInfo, string modifiedBy, string modifiedByHostName)
        {
            throw new NotImplementedException();
        }

        //public int CloneTask(string taskName, string newTaskName, string taskGroupName, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public void DeleteTask(string taskName, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_TASKSDataTable GetAllUITasks(string taskName, string taskGrpName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_TASKSDataTable GetAllTasks(string taskName, string taskGrpName, string machineName, DateTime modifiedDate)
        //{
        //    throw new NotImplementedException();
        //}

        //public void UndeleteTask(string taskName, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public void SetTaskStatus(int batchId, string taskName, string scheduleName, Cinchoo.Core.ETL.ChoETLWorkflowStatus taskStatus, string modifiedBy, string modifiedByHostName, string logMsg = null, DateTime? nextRunTime = null)
        //{
        //    throw new NotImplementedException();
        //}

        //public Cinchoo.Core.ETL.ChoETLWorkflowStatus GetTaskStatus(string taskName, string scheduleName)
        //{
        //    throw new NotImplementedException();
        //}

        //public int GetTaskExitCode(string taskName, string scheduleName)
        //{
        //    throw new NotImplementedException();
        //}

        //public void AddOrUpdateTaskBatch(int batchId, string taskName, string scheduleName, int taskStatus, string cmdParameters, string logMsg, DateTime processStart, DateTime? processEnd, TimeSpan? duration, DateTime? nextRunTime, int exitCode, int? retryCount, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public int AddOrUpdateTaskGroup(string taskGroupName, string taskGroupDesc, int parent, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public void DeleteTaskGroup(string taskGroupName, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public bool IsTaskGroupExists(string taskGroupName, out bool isDeleted)
        //{
        //    throw new NotImplementedException();
        //}

        //public void UndeleteTaskGroup(string taskGroupName, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public void MoveTask(string taskName, int srcTaskGrpId, int destTaskGrpId, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_HOLIDAY_CALENDARSDataTable GetAllHolidayCalendars()
        //{
        //    throw new NotImplementedException();
        //}

        //public void UpdateHolidayCalendar(Model.ChoTasksDataSet.CHO_HOLIDAY_CALENDARSDataTable calendarTable, Model.ChoTasksDataSet.CHO_HOLIDAY_CALENDAR_DATESDataTable calendarDatesTable, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_HOLIDAY_CALENDAR_DATESDataTable GetAllHolidayCalendarDatesById(int holidayCalId)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_HOLIDAY_CALENDAR_DATESDataTable GetAllHolidayCalendarDatesByName(string holidayCalName)
        //{
        //    throw new NotImplementedException();
        //}

        //public int CloneCalendar(string calName, string newCalName, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_TASK_SCHEDULESDataTable GetTaskSchedules(int taskId, string scheduleName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_SCHEDULE_TYPESDataTable GetTaskScheduleTypes()
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_POLICYDataTable GetAllPolicy()
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_USERSDataTable GetAllUsers()
        //{
        //    throw new NotImplementedException();
        //}

        //public void UpdateUsers(Model.ChoTasksDataSet.CHO_USERSDataTable usersTable, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_ROLESDataTable GetAllRoles()
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_ROLE_USERSDataTable GetAllUserRoles(int roleId)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_ROLE_POLICYDataTable GetAllRolePolicy(int roleId)
        //{
        //    throw new NotImplementedException();
        //}

        //public void UpdateRoles(Model.ChoTasksDataSet.CHO_ROLESDataTable rolesTable, Model.ChoTasksDataSet.CHO_ROLE_USERSDataTable userRolesTable, Model.ChoTasksDataSet.CHO_ROLE_POLICYDataTable rolesPolicyTable, string modifiedBy, string machineName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_POLICYDataTable GetPolicyForUser(string userName)
        //{
        //    throw new NotImplementedException();
        //}

        //public Model.ChoTasksDataSet.CHO_DEPENDENCY_TASKSDataTable GetAllDepedencyTasks(string jobName)
        //{
        //    throw new NotImplementedException();
        //}
    }
}
